protected List<PoiFilter> getFilters(SQLiteConnection conn) {
      ArrayList<PoiFilter> list = new ArrayList<PoiFilter>();
      if (conn != null) {
        SQLiteCursor query =
            conn.rawQuery(
                "SELECT "
                    + CATEGORIES_FILTER_ID
                    + ", "
                    + CATEGORIES_COL_CATEGORY
                    + ","
                    + CATEGORIES_COL_SUBCATEGORY
                    + " FROM "
                    + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
                    CATEGORIES_NAME,
                null);
        Map<String, Map<AmenityType, LinkedHashSet<String>>> map =
            new LinkedHashMap<String, Map<AmenityType, LinkedHashSet<String>>>();
        if (query.moveToFirst()) {
          do {
            String filterId = query.getString(0);
            if (!map.containsKey(filterId)) {
              map.put(filterId, new LinkedHashMap<AmenityType, LinkedHashSet<String>>());
            }
            Map<AmenityType, LinkedHashSet<String>> m = map.get(filterId);
            AmenityType a = AmenityType.fromString(query.getString(1));
            String subCategory = query.getString(2);
            if (subCategory == null) {
              m.put(a, null);
            } else {
              if (m.get(a) == null) {
                m.put(a, new LinkedHashSet<String>());
              }
              m.get(a).add(subCategory);
            }
          } while (query.moveToNext());
        }
        query.close();

        query =
            conn.rawQuery(
                "SELECT "
                    + FILTER_COL_ID
                    + ", "
                    + FILTER_COL_NAME
                    + ","
                    + FILTER_COL_FILTERBYNAME
                    + " FROM "
                    + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
                    FILTER_NAME,
                null);
        if (query.moveToFirst()) {
          do {
            String filterId = query.getString(0);
            if (map.containsKey(filterId)) {
              PoiFilter filter =
                  new PoiFilter(query.getString(1), filterId, map.get(filterId), application);
              filter.setFilterByName(query.getString(2));
              list.add(filter);
            }
          } while (query.moveToNext());
        }
        query.close();
      }
      return list;
    }