SQLiteUtils { @NonNull public static ArrayList<String> getAllTableNames(SQLiteDatabase database) { Cursor cursor = database.rawQuery("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;", new String[]{}); int nameColumnIndex = cursor.getColumnIndex("name"); ArrayList<String> tableNames = new ArrayList<>(); while (cursor.moveToNext()) { String tableName = cursor.getString(nameColumnIndex); if (!isInternalTable(tableName)) { tableNames.add(cursor.getString(nameColumnIndex)); } } return tableNames; }  @NonNull static String getIdentityHash(Collection<TableInfo> tableInfos); @NonNull static ArrayList<String> getAllTableNames(SQLiteDatabase database); @NonNull static String createTableDefinition(TableInfo tableInfo); @NonNull static List<String> createIndexDefinition(TableInfo tableInfo); static SQLiteType getFieldSQLiteType(Field field, Map<Class<?>, TypeSerializer> typeSerializers); static Object getColumnFieldValue(Class<?> modelClass,
                                             Class<?> fieldType,
                                             Cursor cursor,
                                             int columnIndex); static void fillContentValuesForUpdate(Object model,
                                                  ModelAdapter modelAdapter,
                                                  ContentValues contentValues); static void fillContentValuesForInsert(Object model,
                                                  ModelAdapter modelAdapter,
                                                  ContentValues contentValues);  }
@Test public void testGetAllTablesNames() { DatabaseInfo testDatabase = ReActiveAndroid.getDatabase(TestDatabase.class); List<String> tableNames = SQLiteUtils.getAllTableNames(testDatabase.getWritableDatabase()); assertEquals(8, tableNames.size()); assertFalse(tableNames.contains(ReActiveMasterTable.TABLE_NAME)); }