VYŘEŠENO!
Takže metody SQLiteQueryBuilder, které vracejí kurzor, neumožňují Boolean parametr přímo.
Po přečtení poznámek ke třídě jsem si všiml metody setDistinct a aplikoval jej na SQLiteQueryBuilder.
Nyní to funguje a dává mi pouze jeden jedinečný záznam pro každý stát, přesně to, co jsem se snažil udělat. Potřeboval jsem odstranit další sloupce a zaměřit se pouze na stav, ale to je další problém/řešení, které s touto otázkou nesouvisí. Stačí říct, že jsem se musel zaměřit pouze na stav sloupce a použít setDistinct do tohoto sloupce, abyste získali požadovaný výsledek.
Zde je vyplněný kód:
public Cursor getData(){
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String [] sqlSelect = {"0 _id", "state"};
String sqlTables = "Reefs";
qb.setTables(sqlTables);
qb.setDistinct(true);
Cursor c = qb.query(db, sqlSelect, null, null, null, null, null);
c.moveToFirst();
return c;
}