This document reviews approaches for making smart contracts upgradable on blockchain platforms like Ethereum. It summarizes six existing patterns for smart contract upgradability: basic data segregation, satellite data segregation, register pattern (which use data segregation) and inherited storage proxy, eternal storage proxy, unstructured storage proxy (which use proxy contracts). The document analyzes these patterns and finds that while proxy patterns enable full upgradability, they have scalability issues. It also finds that existing patterns lack security mechanisms to prevent attacks like DAO attacks. The document then proposes a new "comprehensive data proxy pattern" which uses data segregation and a proxy contract with added verification to enable upgradability, scalability and security against