Qual o erro nessa chamada da stored procedure do SQL Server?

As outras funcionam … a única diferença é que nessa eu não passo nenhum valor para o banco, no banco ele só faz o select da maior chave.
Da erro de nullpoitException nessa linha -> cs = cn.prepareCall(“up_Retornar_Cod_Garantia”);

public int retornar_Cod_Garantia() throws SQLException {

ResultSet rst;

cn = sql.CriarConexao();
CallableStatement cs;

try {

cs = cn.prepareCall("up_Retornar_Cod_Garantia");

                   cs.execute();
                   rst = cs.executeQuery();
                   int cod_Garantia = 0;
                   
                   while(rst.next()){

                    cod_Garantia =  rst.getInt("cod_Garantia"); 

                  }

                   return cod_Garantia;
    
} catch (Exception ex){
    ex.printStackTrace();
                    JOptionPane.showMessageDialog(null,"Não foi possível gerar o código da garantia, \n Cadastre o produto novamente, se o problema continuar: Entre em contato com o administrador do programa \n Felipe Viana: 9998-7676");
                    return 0;
}

}

up