private VersionException createManagers(OpenMode openMode, ProgramDB program1,
			TaskMonitor monitor) throws CancelledException, IOException {

		VersionException versionExc = null;

		monitor.checkCancelled();

		// the memoryManager should always be created first because it is needed to resolve
		// segmented addresses from longs that other manages may need while upgrading.
		long baseImageOffset = program1.getImageBase().getOffset();
		try {
			addressMap = new AddressMapDB(dbh, openMode, addressFactory, baseImageOffset, monitor);
		}
		catch (VersionException e) {
			versionExc = e.combine(versionExc);
			try {
				addressMap = new AddressMapDB(dbh, OpenMode.IMMUTABLE, addressFactory,
					baseImageOffset, monitor);
			}
			catch (VersionException e1) {
				if (e1.isUpgradable()) {
					Msg.error(this,
						"AddressMapDB is upgradeable but failed to support READ-ONLY mode!");
				}
				// Unable to proceed without addrMap !
				return versionExc;
			}
		}
		addressMap.memoryMapChanged(program1.getMemory());
		monitor.checkCancelled();

		return versionExc;
	}
Language specified by languageName was not found.  Check for
valid language translation/migration.  Old language version specified by
languageVersion.
@param e language not found exception
@return true if language upgrade required
@throws LanguageNotFoundException if a suitable replacement language not found
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramUserDataDB.java