private void createRowId(Table table) {
        final Column column = table.mutator().addNewColumn();

        column.mutator().setId(ROW_ID);
        column.mutator().setName(ROW_ID);
        column.mutator().setOrdinalPosition(0);
        column.mutator().setDatabaseType(Long.class);
        column.mutator().setAutoIncrement(true);
        column.mutator().setNullable(false);
        column.mutator().setTypeMapper(PrimitiveTypeMapper.class);

        // When we introduce a new primary key, we need to
        // add a UNIQUE index that represents the same set
        // of columns as the old primary key.
        if (table.primaryKeyColumns().anyMatch(pkc -> true)) {
            final Set<String> oldPks = table.primaryKeyColumns()
                .map(PrimaryKeyColumn::getId)
                .collect(toCollection(LinkedHashSet::new));

            // Make sure such an index doesn't already exist
            if (table.indexes()
                .filter(Index::isUnique)
                .noneMatch(idx -> oldPks.equals(idx.indexColumns()
                    .map(IndexColumn::getId)
                    .collect(toCollection(LinkedHashSet::new))
                ))) {
                addUniqueIndex(table, oldPks);
            }

            // Remove the existing primary key since the rowid is
            // the only value that should be considered part of
            // the primary key
            table.getData().remove(TableUtil.PRIMARY_KEY_COLUMNS);
        }

        final PrimaryKeyColumn pkc = table.mutator().addNewPrimaryKeyColumn();
        pkc.mutator().setId(ROW_ID);
        pkc.mutator().setName(ROW_ID);
        pkc.mutator().setOrdinalPosition(1);
    }
'true' below might speed up metadata retrieval since approximations can
be used. See https://github.com/speedment/speedment-enterprise/issues/168
runtime-parent/runtime-connector-parent/sqlite/src/main/java/com/speedment/runtime/connector/sqlite/internal/SqliteMetadataHandlerImpl.java