@Override
    public void run(Namespace namespace, Liquibase liquibase) throws Exception {
        String scopeId = null;
        if (scopedObjects != null) {
            scopeId = Scope.enter(scopedObjects);
        }
        final AbstractLiquibaseCommand<T> subcommand =
            requireNonNull(subcommands.get(namespace.getString(COMMAND_NAME_ATTR)), "Unable find the command");
        try {
            subcommand.run(namespace, liquibase);
        } finally {
            if (scopeId != null) {
                Scope.exit(scopeId);
            }
        }
    }
@Test
    void testRunSubCommand() throws Exception {
        final String databaseUrl = MigrationTestSupport.getDatabaseUrl();
        final TestMigrationConfiguration conf = MigrationTestSupport.createConfiguration(databaseUrl);
        dbCommand.run(null, new Namespace(Collections.singletonMap("subcommand", "migrate")), conf);

        try (Handle handle = Jdbi.create(databaseUrl, "sa", "").open()) {
            assertThat(handle.createQuery("select count(*) from persons")
                .mapTo(Integer.class)
                .first()).isEqualTo(1);
        }
    }