private void verifyInternalDatabases(File internalConfigDir) {
File databasesDir = new File(internalConfigDir, "databases");
File jobFile = new File(databasesDir, "job-database.json");
assertTrue(jobFile.exists());
ObjectNode jobDatabase = readFile(jobFile);
assertEquals("%%mlJobDbName%%", jobDatabase.get("database-name").asText());
assertEquals("%%mlStagingSchemasDbName%%", jobDatabase.get("schema-database").asText());
assertEquals("%%mlStagingTriggersDbName%%", jobDatabase.get("triggers-database").asText());
verifyJobDatabaseHasPathRangeIndexes(jobDatabase);
File stagingFile = new File(databasesDir, "staging-database.json");
assertTrue(stagingFile.exists());
ObjectNode stagingDatabase = readFile(stagingFile);
assertEquals("%%mlStagingDbName%%", stagingDatabase.get("database-name").asText());
assertEquals("%%mlStagingSchemasDbName%%", stagingDatabase.get("schema-database").asText());
assertEquals("%%mlStagingTriggersDbName%%", stagingDatabase.get("triggers-database").asText());
File schemasFile = new File(databasesDir, "staging-schemas-database.json");
assertTrue(schemasFile.exists());
ObjectNode schemasDatabase = readFile(schemasFile);
assertEquals("%%mlStagingSchemasDbName%%", schemasDatabase.get("database-name").asText());
File triggersFile = new File(databasesDir, "staging-triggers-database.json");
assertTrue(triggersFile.exists());
ObjectNode triggersDatabase = readFile(triggersFile);
assertEquals("%%mlStagingTriggersDbName%%", triggersDatabase.get("database-name").asText());
assertFalse(new File(databasesDir, "final-database.json").exists());
assertFalse(new File(databasesDir, "modules-database.json").exists());
verifyObsoleteDatabaseFilesDontExist(databasesDir);
}