Dear Pragna,
Sorry for the late reply.
I carefully do tests in each step and I find that most of the steps are correct. You can create the flow as follows.
The formula in Since in Get changes for an item or a file (properties only): add(int(triggerOutputs()?['body/{VersionNumber}']),-1).
From in Filter Array; split(string(outputs('Get_changes_for_an_item_or_a_file_(properties_only)')?['body/ColumnHasChanged']),',').
item() contains string(':true').
Compose: outputs('Get_changes_for_an_item_or_a_file_(properties_only)')?['body/SinceVersionId']
Send an HTTP request to SharePoint Online
Method: Get
Uri: _api/web/lists/GetByTitle('listdemo00B')/items(@{triggerOutputs()?['body/ID']})/Versions(@{outputs('Compose')})
From in Select: body('Filter_array')
Map: json(item())
Compose2: triggerOutputs()?['body']?[item()]
To get the correct changed Choice column value, you may type the formula if(contains(string(outputs('Compose_2')),'SPListExpandedReference'),outputs('Compose_2')?['Value'],outputs('Compose_2')) in changeto in Append to array variable.
Result:
Sincerely,
Cliff | Microsoft Community Moderator