<!-- Describe the issue -->
`getrawtransaction` fails
<!--- What behavior did you expect? -->
Return decoded raw tx
<!--- What was the actual behavior (provide screenshots if the issue is GUI-related)? -->
* `bitcoin-qt -prune=8192  -server -rpcuser=rpc -rpcpassword=rpc -onlynet=ipv4 -rpcbind=127.0.0.1:18332 -testnet`
  * BTC 0.18.0
  * `getrawtransaction b423b2b22d6d74376de2887c07f7c84ae890a93d541fcc6dbf3686f2923b2753 1`
![image](https://user-images.githubusercontent.com/3670331/58841021-658d7180-8668-11e9-9f9f-ed1f794070ea.png)
  * BTC 0.17.1
  * `getrawtransaction b423b2b22d6d74376de2887c07f7c84ae890a93d541fcc6dbf3686f2923b2753 1`
![image](https://user-images.githubusercontent.com/3670331/58841089-9ff70e80-8668-11e9-8a68-5022631b43d7.png)

<!--- How reliably can you reproduce the issue, what are the steps to do so? -->
Request `getrawtransaction`.
<!-- What version of Bitcoin Core are you using, where did you get it (website, self-compiled, etc)? -->
Official from site.
<!-- What type of machine are you observing the error on (OS/CPU and disk type)? -->
`Linux pentagon 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) x86_64 GNU/Linux`, u5200, 2x8Gb, SSD
<!-- For the GUI-related issue on Linux provide names and versions of a distro, a desktop environment and a graphical shell (if relevant). -->
QT
<!-- Any extra information that might be useful in the debugging process. -->
<!--- This is normally the contents of a `debug.log` or `config.log` file. Raw text or a link to a pastebin type site are preferred. -->

view.SetBackend(viewMempool); 
        for (const CTxIn& txin : psbtx.tx->vin) {
            view.AccessCoin(txin.prevout); 
        }
        view.SetBackend(viewDummy); 
    }
    
    for (unsigned int i = 0; i < psbtx.tx->vin.size(); ++i) {
        PSBTInput& input = psbtx.inputs.at(i);
        if (input.non_witness_utxo || !input.witness_utxo.IsNull()) {
            continue;
        }
        const Coin& coin = view.AccessCoin(psbtx.tx->vin[i].prevout);
        std::vector<std::vector<unsigned char>> solutions_data;
        txnouttype which_type = Solver(coin.out.scriptPubKey, solutions_data);
        if (which_type == TX_WITNESS_V0_SCRIPTHASH || which_type == TX_WITNESS_V0_KEYHASH || which_type == TX_WITNESS_UNKNOWN) {
            input.witness_utxo = coin.out;
        }
    }
    CDataStream ssTx(SER_NETWORK, PROTOCOL_VERSION);
    ssTx << psbtx;
    return EncodeBase64((unsigned char*)ssTx.data(), ssTx.size());
}
UniValue joinpsbts(const JSONRPCRequest& request)
{
    if (request.fHelp || request.params.size() != 1) {
        throw std::runtime_error(
            RPCHelpMan{"joinpsbts",
            "\nJoins multiple distinct PSBTs with different inputs and outputs into one PSBT with inputs and outputs from all of the PSBTs\n"
            "No input in any of the PSBTs can be in more than one of the PSBTs.\n",