Changing/Adding Base Contract (V2)

If I have this (V1) contract: contract MineV1 is ERC20Upgradeable, AccessControlUpgradeable {…} (using OZ v4), and I want to upgrade it to V2 adding Pauseable & Blacklistable features to the contract (one requiring a storage bool and another requiring a mapping, along with modifiers/role hashes/etc.), what is the best way to write V2 ?

To avoid storage corruption, is it possible to write:
MineV2 is MineV1, Pauseable, Blacklistable {…} ?

Or do I need to just add the new logic in-line to a copy of the same contract, i.e
MineV2 is ERC20Upgradeable, AccessControlUpgradeable {…adding new logic to contract and new storage vars below old ones...}