Postgres + Java por interface (distinct)

Bom dia pessoal, estou desenvolvendo uma aplicacao que acessa informações sobre um mapa urbano em banco (Postgres), estou usando a interface para fazer as querys.
Este metodo é usado em uma função de auto-complete e por isso não pode retornar resultados repetidos, porém eles existem em banco. Preciso que a minha query tenha algo como um DISTINCT ou GROUP BY do sql, porém não encontrei uma maneira de usá-los na interface que uso.

Já procurei pelo google, no codehaus (http://docs.codehaus.org/display/GEOTDOC/Filter+Examples) e no wiki do postgres mas não achei nada sobre eles.
Segue abaixo o meu codigo, ele funciona porém retorna resultados repetidos.

public List<String> getEnderecosPossiveis(String rua, String mapa) {
		
	//lista de ruas para o auto-complete
	List<String> nomes = new ArrayList<String>();
	//iterator de resultados
	SimpleFeatureIterator ite = null;
	//filtro da busca
	Filter filter = null;
	try {
		//factory responsavel pela criacao de filtros
		FilterFactory ff = CommonFactoryFinder.getFilterFactory(new Hints(Hints.FEATURE_2D, true));
		String WC_MULTI = "%";
            	String WC_SINGLE = "_";
           	String ESCAPE = "\\";
            	//filtro like para o campo rua
            	filter = ff.like(ff.property("RUA"), rua + WC_MULTI, WC_MULTI, WC_SINGLE, ESCAPE, false);
            	//pegando o objeto responsavel pelo acesso da tabela/mapa
		SimpleFeatureSource feature = getFeature(mapa);
		//montando a query
		Query query = new Query(mapa, filter);
		//maximo de resultados
	        query.setMaxFeatures(10);
	        //escolhendo campos a retornar
	        query.setPropertyNames(new String[]{"TIPO", "RUA"});
	        //ordenando
	        SortBy sortByTipo = ff.sort("TIPO", SortOrder.ASCENDING);
	        SortBy sortByRua = ff.sort("RUA", SortOrder.ASCENDING);
	        query.setSortBy(new SortBy[]{sortByTipo, sortByRua});
	        //executando a query
	        SimpleFeatureCollection features = feature.getFeatures(query);
	        //passando para o iterator or resultados
		ite = features.features();
		while (ite.hasNext()) {
			//para cada resultado
			SimpleFeature first = ite.next();
			//leio a rua
			String strRua = (String) first.getAttribute("RUA");
			//o tipo de rua (Avenida, Rua, etc)
			String strTipo = (String) first.getAttribute("TIPO");
			//jogo na lista de retorno
			nomes.add(strTipo +" "+ strRua);
		}
	} catch (Exception e) {
		theLogger.severe("Erro na rua '"+rua+"' no mapa '"+mapa+"' : "+e.getMessage());
	} finally {
		if (ite != null) {
			ite.close();
		}
	}
	return nomes;
}

Por favor se alguém souber, me ajude!