public Stream<SqlMigration> getMigrations() {
        SqlMigrationProvider migrationProvider = getMigrationProvider();

        try {
            final Map<String, SqlMigration> commonMigrations = getCommonMigrations(migrationProvider).stream().collect(toMap(SqlMigration::getFileName, m -> m));
            final Map<String, SqlMigration> databaseSpecificMigrations = getDatabaseSpecificMigrations(migrationProvider).stream().collect(toMap(SqlMigration::getFileName, p -> p));

            final HashMap<String, SqlMigration> actualMigrations = new HashMap<>(commonMigrations);
            actualMigrations.putAll(databaseSpecificMigrations);

            return actualMigrations.values().stream();
        } catch (IllegalStateException e) {
            if(e.getMessage().startsWith("Duplicate key")) {
                throw new IllegalStateException("It seems you have JobRunr twice on your classpath. Please make sure to only have one JobRunr jar in your classpath.", e);
            }
            throw e;
        }
    }
@Test
    void testGetMigrations() {
        final DatabaseMigrationsProvider databaseCreator = new DatabaseMigrationsProvider(null);
        final Stream<SqlMigration> databaseSpecificMigrations = databaseCreator.getMigrations();
        assertThat(databaseSpecificMigrations).anyMatch(migration -> migration.getFileName().equals("v000__create_migrations_table.sql"));
    }