Campo de dados SQL temporário

Atualmente estou retornando um valor booleano como "1" ou "0" ou valor de uma coluna digamos coluna A em um dos meus procedimentos armazenados e funciona perfeitamente, porém em uma das aplicações estou tentando obter valor assim

string temp = reader.TryGetValue("ColumnA", out licenseStatus) ? temp : string.Empty;

Procedimento armazenado está fazendo algo assim,

if @datafield = 1
    return 1
else if @datafield = 2 AND @datafield2 = 3
    return 0
else
    return (SELECT ColumnA.table2 FROM table1 INNER JOIN table2 on table1.id and table2.id Where @datafield3 = 0)

Agora quero retornar o resultado como valor de ColumnA sempre, em vez de enviar "0" ou "1", pois não tenho permissão para fazer alterações no código no aplicativo.

É possível ? Também não posso fazer alterações no valor ColumnA.

EDITAR

Eu já mencionei na minha pergunta que o procedimento armazenado está fazendo o que é suposto fazer, mas não está funcionando com o meu código, já que estou retornando 1 ou 0 em algum momento e meu código não está recebendo como columnA, então é configurá-lo vazio Eu quero retornar 0 ou 1 como valor de ColumnA, mas ao mesmo tempo eu não quero alterar o valor de columnA na tabela2 ..

:)

questionAnswers(2)

yourAnswerToTheQuestion