Changing published revision
The last revision is always the one that will be used throughout the site. So if it is published then it will be shown. You cannot have one revision published and working on another revision that is not published yet.

Although maybe you can edit an older revision(make sure you do not tick the "create new revision" option while editing) and then, via revision overview, make it the current revision.

If you want to change the status of node(not any entity, only node entity) programmatically than you can call the $node->setPublished(TRUE) or $node->setPublished(FALSE) methods.