Can I see the implementation behind an upgradeable contract?

you can read the storage slot where it is located. from the proxy code: bytes32 private constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

here is a prior post about it