РЕШЕНО!
Така методите на SQLiteQueryBuilder, които връщат курсор, не позволяват Boolean параметър директно.
Въпреки това, след като прочетох бележките на класа, забелязах метода setDistinct и го приложи към SQLiteQueryBuilder.
Сега работи и ми дава само един уникален запис за всяко състояние, точно това, което се опитвах да направя. Трябваше да премахна другите колони и просто да се съсредоточа върху състоянието, но това е друг проблем/решение, което не е свързано с този въпрос. Достатъчно е да кажа, че трябваше да се съсредоточа само върху състоянието на колоната и да приложа setDistinct само към тази колона, за да получите желания резултат.
Ето попълнения код:
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;
}