I have examined the code and noticed that the historyGrid() method initiates a new Grid widget. When the button is clicked the method is called again and a new widget is created. However the old instance is not destroyed. This is why an error is shown.
With that said, if you would like to add items to the Grid dataSource I would suggest using the add() method
. The dojo below outlines the approach:
Give the approach a try and let me know how it works for you.