Criando um RadioButton com itens dinâmicos recuperados do firebase

Olá pessoal tudo bem?
Sou iniciante e estou tentando recuperar informações do BD firebase para carregar os itens, porém não estou conseguindo. Acredito que o problema está na implementação do tipo de retorno do método recuperaDisciplina, pois tenho que retornar a String da disciplina recuperada e está retornando o nome do objeto.
Segue o código abaixo, desde já agradeço qualquer comentário ou idéia.

public class SelecionaDisciplinaDialog extends DialogFragment {

int position = 0;
//Inicializa Firebase
private DatabaseReference firebaseRef = ConfiguracaoFirebase.getFirebaseDatabase();
private FirebaseAuth autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao();


public interface SingleChoiceListner {
    void onPositiveButtonClicked(String[] list, int position);
    void onNegativeButtonClicked();
}

SingleChoiceListner mListener;

@Override
public void onAttach(@NonNull Context context) {
    super.onAttach(context);
    try {
        mListener = (SingleChoiceListner) context;
    } catch (Exception e) {
        throw new ClassCastException(getActivity() + "Método deve ser implementado");
    }
}

@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    //Carregando array com as disciplinas armazenadas na string


    final String[] list = {recuperaDisciplina().toString()};


    builder.setTitle("Selecione a Disciplina")
            .setSingleChoiceItems(list, position, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    position = i;
                }
            })
            .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    mListener.onPositiveButtonClicked(list, position);
                }
            })
            .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    mListener.onNegativeButtonClicked();
                }
            });

    return builder.create();

}

public String[] recuperaDisciplina() {
    String emailUsuario = autenticacao.getCurrentUser().getEmail();
    String idUsuario = Base64Custom.codificarBase64(emailUsuario);

    final List<Movimentacao> movimentacoes = new ArrayList<>();
    ValueEventListener valueEventListenerMovimentacoes;

    DatabaseReference movimentacaoRef = firebaseRef.child("movimentacao")
            .child(idUsuario);


    valueEventListenerMovimentacoes = movimentacaoRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            int difDias = 0;
            //Recupera  os itens(filhos de dataSnapshot) que atendem a condição
            for (DataSnapshot dados : dataSnapshot.getChildren()) {
                Movimentacao movimentacao = dados.getValue(Movimentacao.class);
                movimentacao.setKey(dados.getKey());

                if (movimentacao.getTipo().equals("d")) {
                    movimentacoes.add(movimentacao);
                    String Disciplina = movimentacao.getDisciplina();

                }
            }
        }


        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    return new String[0];
}

}