If you maintain a presentation layer, you usually maintain compatibility between releases, limiting your changes to v1.2 by adding additional columns to existing views or adding additional views. Applications that do not want to update will continue to use existing columns of existing views, while applications that want to update may use new views. Oracle data dictionary representations are a great example of this. Each new release features dozens of new submissions that open up new possibilities for the applications that need it. But scripts written against data dictionary views in Oracle 7 will happily work with 11.2 database (less efficiently, possibly).
This is no different than supporting any other API. Usually you do not distract existing API calls or force users to pass additional API parameters when version 1.2 is released. Instead, you grandfather, the old API, is entering the new version. From time to time, of course, you may have to give up some part of the API and force existing applications to do a small update. But they are relatively rare and only require the application to change the code making this deprecated call - the application does not need to be fully updated to the new API v1.2.
source share