Thanks for your response, @abcoathup!
I have another question: the openzeppelin-labs example shows an inheritance to persist state between version (https://github.com/OpenZeppelin/openzeppelin-labs/blob/master/upgradeability_using_unstructured_storage/contracts/test/Token_V1.sol).
I wrote a solidity example, OP create and then OP verify.
Then OP upgrade and OP verify.
In this case, there is no inheritance. How does it persist state between versions?