RISOLTO!
Quindi i metodi SQLiteQueryBuilder che restituiscono un cursore non consentono il Booleano parametro direttamente.
Tuttavia dopo aver letto le note di lezione ho notato il metodo setDistinct e applicato a SQLiteQueryBuilder.
Ora funziona e mi dà solo una voce univoca per ogni stato, proprio quello che stavo cercando di fare. Avevo bisogno di rimuovere le altre colonne e concentrarmi solo sullo stato, ma questo è un altro problema/soluzione non correlato a questa domanda. Basti dire che dovevo concentrarmi solo sullo stato della colonna e applicare il setDistinct a quella colonna solo per ottenere il risultato desiderato.
Ecco il codice completato:
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;
}