Right now, the mechanism to decide what schema definition entry to use is decided by the db type name/version and the GUID. The candidates for those are taken from the schema_GAME.xml files which are needed to determine the highest version number for a given table in the current game. To create the game schemata, all packs in the game data directory are analysed to filter out the ones needed.
This worked fine when CA used the old patching mechanism of keeping the old release packs and adding the patch ones on top. Now, they overwrite the release pack; therefore, tables with old versions are not available anymore to put into the game's schema file.
Right now (3.1.x), there is a mechanism in place to also read *.patchX files to retrieve those old version tables, in order to not remove them in the creation process. This requires these patch files to be present when the release build is created.
A new process is needed. What should work is to read from the master_schema.xml always and if a db file is opened, brute-force try to find a schema that fits. The highest version for all db files for each game can still be retrieved from the game during release build and can be stored in a separate file without the need for the previous patches being kept.