Solution
Push the num variable to Slot #1 in the implementation contract
Dumb solution (but also works)
contract Implementationv2 { uint public num1; uint public num;
function setNum(uint _num) public { num = _num * 2; }}Better solution
contract Implementationv2 { uint public num1; address public _owner;
function setNum(uint _num) public { num = _num * 2; }}