Formatar um Nome

Salve pessoal … seguinte eu tenho um valor que recebo do banco assim “JOSE FULANO DA SILVA” e eu queria tranforma-lo assim “Jose Fulano Da Silva” tem algum método pronto para issu ou eu vou ter de criar um…
Não vale o tolowercase, porque ele me colocaria todos os caracteres em lower e eu preciso que o primeiro de cada palavra seja em caixa alta…

Bom como niguém respondeu vou deixar documentado como eu fiz , usando um metodo para tal.

public String tratar_nome(String nome){
        try{
            String temp=nome.toLowerCase();
            String retorno;
            String letra;
            char[] teste=temp.toCharArray();
            retorno=String.valueOf(teste[0]).toUpperCase();
            for (int i=1;i<temp.length();i++){
                if(teste[i-1]==' '){
                    letra=String.valueOf(teste[i]);
                    retorno=retorno+(String.valueOf(letra.toUpperCase()));
                }else
                    retorno=retorno+(String.valueOf(teste[i]));   
            }
            return retorno;
            
            
        }catch(Exception ex){
           System.err.println(ex.toString());
        }
        return null;
    }