@NonNull
    public static String[] getSuggestions(final String table, final String columnSearchValue, final String columnReturnValue, final String input, final Func1<String, String[]> processor) {
        return withAccessLock(() -> {

            try {
                final Cursor cursor = database.rawQuery("SELECT DISTINCT " + columnReturnValue
                        + " FROM " + table
                        + " WHERE " + columnSearchValue + " LIKE ?"
                        + " ORDER BY " + columnSearchValue + " COLLATE NOCASE ASC;", new String[]{getSuggestionArgument(input)});
                final Collection<String> coll = cursorToColl(cursor, new LinkedList<>(), GET_STRING_0);
                if (processor == null) {
                    return coll.toArray(new String[0]);
                }
                return processAndSortSuggestions(coll, input, processor).toArray(new String[0]);
            } catch (final RuntimeException e) {
                Log.e("cannot get suggestions from " + table + "->" + columnSearchValue + " for input '" + input + "'", e);
                return ArrayUtils.EMPTY_STRING_ARRAY;
            }
        });
    }
Loads all Waypoints in the coordinate rectangle.
main/src/main/java/cgeo/geocaching/storage/DataStore.java